import Vue from "vue";
import Vuex from "vuex";
// 原始方法如下直接导入模块js并命名
// 现在直接通过读取模块文件夹下的js文件并以文件名作为模块名
// import app from "./modules/app";
// 如果有getters则按照如下引入
// import getters from './getters'

Vue.use(Vuex);

// 通过modulesFiles获取模块js，正则匹配当前文件夹下以js结尾的文件
const modulesFiles = require.context("./modules", true, /\.js$/);
// 获取的方法
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  // 模块名称即为js文件名
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1");
  const value = modulesFiles(modulePath);
  modules[moduleName] = value.default;
  return modules;
}, {});

export default new Vuex.Store({
  // getters,
  modules,
});
